A typical computer system uses a single internet protocol (IP) address and corresponding host name assigned to the computer system. Any user session or program on the computer will use the host name of the computer for network communications, such as on a TCP/IP network. Communications over the network to and from the computer, for example between a client and a server, use the computers host name and IP address as part of the network communications of the computer. Even in a multi-user environment such as a server using Microsoft Terminal Server, all users or programs running on the multi-user server will share the same host name and IP address assigned to that server. The IP address and host name is computer or machine dependent and are associated with network communications originating from the computer. Even in the case where a computer has multiple network cards and multiple IP addresses, these IP addresses and their host names are associated with the computer and not specifically with users or programs of the computer. All users and programs on the computer will communicate over a network with the host name of the computer. As such, the host name is associated with the computer and not the user of the computer.
In performing host name resolution on a network or to look up host names used on a network, only the host names and IP addresses of computers in the network will be found. From these host names, the user or user session on the computer may not be easily identified. Furthermore, a user may be accessing the network from different computers each with a different host name or from multiple user sessions on the same computer with the same host name. As such, the typical network addressing scheme does not allow for efficient lookup of a user by host name to determine what users may be accessing the network and from how many sessions or from what computers.
Additionally, some applications assume that each user or program will use a unique host name. For example, some network monitoring and mainframe systems use the host name to identify users. However, if two users are on the same computer they will share the same host name assigned to the computer. In another case, the user may roam within a server farm and therefore does not always access the network from the same computer. For example, some multi-user systems use a set of load balancing servers to support a large number of concurrent users. When a user connects, the user is automatically and dynamically directed to the least loaded server to balance the load. Unfortunately, this means the IP address and host name of the computer the user is assigned to is not known until the user is connected to the dynamically determined server. This makes it more difficult to associate a host name or IP address with a user.
Thus, it is desirable to provide a uniform network addressing scheme for a user roaming on a network, accessing a multi-user system, or starting multiple user sessions. Systems and methods are needed for assigning virtual host names to virtual IP addresses for users that are independent from the IP address and host name of the computer system from which the user accesses a network.